--- /dev/null
+#
+# Copyright (C) 2006-2012 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=alsa-utils
+PKG_VERSION:=1.0.27.2
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_URL:=ftp://ftp.alsa-project.org/pub/utils/ \
+ http://alsa.cybermirror.org/utils/
+PKG_MD5SUM:=b65e9a04181bd7c9db7667a4566f8dc3
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/alsa-utils
+ SECTION:=utils
+ CATEGORY:=Utilities
+ DEPENDS:=+alsa-lib +libncurses +libpthread
+ TITLE:=ALSA (Advanced Linux Sound Architecture) utilities
+ URL:=http://www.alsa-project.org/
+endef
+
+define Package/alsa-utils-seq
+ SECTION:=utils
+ CATEGORY:=Utilities
+ DEPENDS:=+alsa-lib +libpthread
+ TITLE:=ALSA sequencer utilities
+ URL:=http://www.alsa-project.org/
+endef
+
+define Package/alsa-utils-tests
+ $(call Package/alsa-utils/Default)
+ SECTION:=utils
+ CATEGORY:=Utilities
+ TITLE:=ALSA utilities test data (adds ~1.3M to image)
+ DEPENDS:=+alsa-lib +libpthread
+endef
+
+define Build/Configure
+ $(call Build/Configure/Default, \
+ --disable-rpath \
+ --disable-alsatest \
+ --disable-xmlto \
+ , \
+ ac_cv_prog_ncurses5_config=no \
+ ac_cv_prog_ncursesw5_config=no \
+ )
+endef
+
+define Package/alsa-utils/install
+ $(INSTALL_DIR) $(1)/usr/{s,}bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/amixer $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/alsamixer $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/aplay $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/arecord $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/alsactl $(1)/usr/sbin/
+
+ $(INSTALL_DIR) $(1)/usr/share/alsa/init
+ $(INSTALL_DATA) \
+ $(PKG_INSTALL_DIR)/usr/share/alsa/init/* \
+ $(1)/usr/share/alsa/init/
+endef
+
+define Package/alsa-utils-seq/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/aconnect $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/amidi $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/aplaymidi $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/arecordmidi $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/aseqdump $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/aseqnet $(1)/usr/bin/
+endef
+
+define Package/alsa-utils-tests/install
+ $(INSTALL_DIR) $(1)/usr/{s,}bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/speaker-test $(1)/usr/bin/
+ $(INSTALL_DIR) $(1)/usr/share/sounds/alsa
+ $(INSTALL_DATA) \
+ $(PKG_INSTALL_DIR)/usr/share/sounds/alsa/* \
+ $(1)/usr/share/sounds/alsa/
+endef
+
+$(eval $(call BuildPackage,alsa-utils))
+$(eval $(call BuildPackage,alsa-utils-seq))
+$(eval $(call BuildPackage,alsa-utils-tests))
--- /dev/null
+--- a/alsamixer/volume_mapping.c
++++ b/alsamixer/volume_mapping.c
+@@ -114,9 +114,9 @@ static double get_normalized_volume(snd_
+ if (use_linear_dB_scale(min, max))
+ return (value - min) / (double)(max - min);
+
+- normalized = exp10((value - max) / 6000.0);
++ normalized = pow(10, (value - max) / 6000.0);
+ if (min != SND_CTL_TLV_DB_GAIN_MUTE) {
+- min_norm = exp10((min - max) / 6000.0);
++ min_norm = pow(10, (min - max) / 6000.0);
+ normalized = (normalized - min_norm) / (1 - min_norm);
+ }
+
+@@ -149,7 +149,7 @@ static int set_normalized_volume(snd_mix
+ }
+
+ if (min != SND_CTL_TLV_DB_GAIN_MUTE) {
+- min_norm = exp10((min - max) / 6000.0);
++ min_norm = pow(10, (min - max) / 6000.0);
+ volume = volume * (1 - min_norm) + min_norm;
+ }
+ value = lrint_dir(6000.0 * log10(volume), dir) + max;